package com.cloud.mall.oms.service;

import com.cloud.mall.base.BaseResponse;
import com.cloud.mall.oms.dto.cart.CartPromotionItem;
import com.cloud.mall.oms.model.OmsCartItem;
import com.cloud.mall.oms.out.OmsCartItemOut;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Api(tags = "购物车管理管理")
@RequestMapping("/cart")
public interface OmsCartItemService {

    @ApiOperation("获取包含促销活动信息的购物车列表")
    @GetMapping("/listPromotion")
    BaseResponse<List<CartPromotionItem>> listPromotion();

    @ApiOperation("添加商品到购物车")
    @PostMapping("/add")
    BaseResponse add(@RequestBody OmsCartItem cartItem);

    @ApiOperation("获取某个会员的购物车列表")
    @GetMapping("/list")
    BaseResponse<List<OmsCartItemOut>> list();

    @ApiOperation("修改购物车中某个商品的数量")
    @PostMapping("/update/quantity")
    BaseResponse updateQuantity(@RequestParam Long id, @RequestParam Integer quantity);

    @ApiOperation("修改购物车中商品的规格")
    @PostMapping("/update/attr")
    BaseResponse updateAttr(@RequestBody OmsCartItem cartItem);

    @ApiOperation("删除购物车中的某个商品")
    @PostMapping("/delete")
    BaseResponse delete(@RequestParam("ids") List<Long> ids);

    @ApiOperation("清空购物车")
    @PostMapping("/clear")
    BaseResponse clear();
}
